gusucode.com > MATLAB与控制系统仿真实践 源代码 > MATLAB与控制系统仿真实践 源代码/第十七章/eg17_2.m
%查看原系统 num=1;den=[1,5,4,0]; G0=tf(num,den); rlocus(G0); step(feedback(3*G0,1)) %确定系统的期望主导极点 sigma=0.2 zeta=((log(1/sigma))^2/((pi)^2+(log(1/sigma))^2))^(1/2); wn=1/zeta; p=[1 2*zeta*wn wn*wn]; s=roots(p) %求取校正环节 s1=s(1); ng=1; dg=[1 5 4 0]; ngv=polyval(ng,s1); dgv=polyval(dg,s1); g=ngv/dgv; theta=angle(g); phic=pi-theta; phi=angle(s1); thetaz=(phi+phic)/2; thetap=(phi-phic)/2; zc=real(s1)-imag(s1)/tan(thetaz); pc=real(s1)-imag(s1)/tan(thetap); nc=[1 -zc]; dc=[1 -pc]; Gc=tf(nc,dc) %查看校正后系统 G0=tf(ng,dg); rlocus(Gc*G0) step(feedback(32*Gc*G0,1))